
Ext.define('Writer.Form', {
    extend: 'Ext.form.Panel',
    alias: 'widget.writerform',
    requires: ['Ext.form.field.Text'],
    initComponent: function(){
        Ext.apply(this, {
            activeRecord: null,
            iconCls: 'icon-proyecto',
            frame: true,
            title: 'Proyectos',
            defaultType: 'textfield',
            bodyPadding: 25,
            fieldDefaults: {
                anchor: '100%',
            },	
            items: [{
                fieldLabel: 'Id',
                name: 'id',
                type: 'int',
                hidden: true,
            },{
                fieldLabel: '<b>Nombre</b>',
                fieldStyle: 'background-color: transparent; border: none; background-image: none;',
                name: 'nombre',
            },{
                fieldLabel: '<b>Nº Fases</b>',
                name: 'nroFases',
                fieldStyle: 'background-color: transparent; border: none; background-image: none;',
                type: 'int',
                itemId: 'f_nroFases',
            },{
                fieldLabel: 'Fecha Creacion',
                name: 'fechaCreacion',
                itemId: 'f_fechaCreacion',
                hidden: true,
            },{
                fieldLabel: '<b>Estado</b>',
                name: 'estado',
                fieldStyle: 'background-color: transparent; border: none; background-image: none;',
                itemId: 'f_estado',
            }, {
                fieldLabel: '<b>Descripcion</b>',
                name: 'descripcion',
                fieldStyle: 'background-color: transparent; border: none; background-image: none;',
                itemId: 'f_descripcion',
            }],
            dockedItems: [{
                xtype: 'toolbar',
                items: [{
                    iconCls: 'icon-miembros',
                    itemId: 'miembros',
                    text: '<b>Ver Miembros</b>',
                    hidden: true,
                    scope: this,
                    //disabled: true, 
                    handler: this.onMiembros
                },{}]
            },{
				weight: 1,
                xtype: 'toolbar',
                dock: 'bottom',
                items: ['->', {
                    iconCls: 'icon-desarrollo',
                    itemId: 'desarrolladores',
                    text: '<b>Desarrolladores</b>',
                    hidden: true,
                    scope: this,
                    handler: this.onDesarrolladores
                }, {
                    iconCls: 'icon-fase',
                    itemId: 'lideres-fase',
                    text: '<b>Lideres de Fase</b>',
                    hidden: true,
                    scope: this,
                    handler: this.onLideresFase
                },{
                    iconCls: 'icon-reset',
                    text: '<b>Reset</b>',
                    scope: this,
                    handler: this.onReset
                }]
            }]
        });
        this.callParent();
    },

    setActiveRecord: function(record){
        this.activeRecord = record;
        if (record) {
		
			this.down('#miembros').show();
			this.down('#lideres-fase').show();
			this.down('#desarrolladores').show();

            this.getForm().loadRecord(record);
        } else {

            this.down('#miembros').hide();
            this.down('#lideres-fase').hide();
            this.down('#desarrolladores').hide();
			
            this.getForm().reset();
        }
    },

    
	onMiembros: function(){
			var form = this.getForm();
			this.fireEvent('ddMiembros', form.getValues(true));            
	},

	onLideresFase: function(){
			var form = this.getForm();
			this.fireEvent('ddLiderF', form.getValues(true));            
	},

	onDesarrolladores: function(){
			var form = this.getForm();
			this.fireEvent('ddDesarr', form.getValues(true));            
	},

    onReset: function(){
        this.setActiveRecord(null);
        this.getForm().reset();
        this.fireEvent('reset');
    },

       
});

Ext.Loader.setConfig({enabled: true});
Ext.Loader.setPath('proyectos', 'static/combos/componentes/proyectos');

Ext.define('Writer.Grid', {
    extend: 'Ext.grid.Panel',
    alias: 'widget.writergrid',
    requires: [
        'Ext.form.field.Text',
        'Ext.toolbar.TextItem'
    ],
    initComponent: function(){
        


        Ext.apply(this, {
            iconCls: 'icon-grid',
            dockedItems: [{ 
                weight: 1,
                xtype: 'toolbar',
                dock: 'bottom',
                items: ['->', {
                    iconCls: 'icon-refresh',
                    text: '<b>Actualizar</b>',
                    scope: this,
                    handler: this.onRefresh
                }]
            }],
            columns: [{
                text: 'Id',
                width: 30,
                hidden: true,
                dataIndex: 'id'
            },{
                header: '<b>Nombre</b>',
                flex: 1,
                dataIndex: 'nombre',

            }, {
                header: '<b>Descripcion</b>',
                width: 150,
                dataIndex: 'descripcion',

            },{
                text: '<b>Nº Fases</b>',
                flex: 1,
                dataIndex: 'nroFases'
            },{
                header: '<b>Fecha Creacion</b>',
                flex: 1,
                dataIndex: 'fecha',

            }, {
                header: '<b>Estado</b>',
                flex: 1,
                dataIndex: 'estado',

            }]
        });
        this.callParent();
        this.getSelectionModel().on('selectionchange', this.onSelectChange, this);
    }, 

    onRefresh: function(){
		this.getSelectionModel().clearSelections();
		this.store.load();
	}
});

Ext.define('DataTipoItem', {
    extend: 'Ext.data.Model',
    fields: [{
			name: 'id',
			type: 'int'
		},'nombreTipoItem']
});

Ext.define('DataFases', {
    extend: 'Ext.data.Model',
    fields: [{
			name: 'id',
			type: 'int'
		},'nombreFase']
});

Ext.define('Writer.Person', {
    extend: 'Ext.data.Model',
    fields: [{
        name: 'id',
        type: 'int',
        useNull: true
    },{
        name: 'nroFases',
        type: 'int',
    }, 'nombre', 'descripcion', 'fecha', 'estado'],
    validations: [{
        type: 'length',
        field: 'email',
        min: 1
    }, {
        type: 'length',
        field: 'first',
        min: 1
    }, {
        type: 'length',
        field: 'last',
        min: 1
    }, {
        type: 'length',
        field: 'nombreUsuario',
        min: 1
    }]
});

Ext.define('Writer.Fases', {
    extend: 'Ext.data.Model',
    fields: [{
        name: 'id',
        type: 'int',
        useNull: true
    },{
        name: 'nroItems',
        type: 'int',
    },{
        name: 'idProyectoFase',
        type: 'int',
    },{
        name: 'nroLBs',
        type: 'int',
    },{
        name: 'posicionFase',
        type: 'int',
    }, 'nombreFase', 'descripcion', 'estado']
});

Ext.define('Writer.TipoItem', {
    extend: 'Ext.data.Model',
    fields: [{
        name: 'id',
        type: 'int',
        useNull: true
    },{
        name: 'nroAtributos',
        type: 'int',
    },{
        name: 'idProyecto',
        type: 'int',
    }, 'nombre', 'descripcion']
});


Ext.require([
    'Ext.data.*',
    'Ext.tip.QuickTipManager',
    'Ext.window.MessageBox',
    'Ext.grid.*',
    'Ext.tab.*',
    'Ext.window.*',
    'Ext.tip.*',
    'Ext.layout.container.Border',
    'Ext.dd.*',
    'Ext.form.field.ComboBox',
    'proyectos.MiembrosForm',
    'proyectos.MiembrosGrid',
    'proyectos.DesarrolladoresForm',
    'proyectos.DesarrolladoresGrid',    
    'proyectos.FaseLForm',
    'proyectos.FaseLGrid',
    'Ext.form.FieldSet'
]);

Ext.define('DataUsuario', {
    extend: 'Ext.data.Model',
    fields: ['nombreUsuario']
});

Ext.define('DataTipoItem', {
    extend: 'Ext.data.Model',
    fields: [{
			name: 'id',
			type: 'int'
		},'nombreTipoItem']
});

Ext.define('DataFase', {
    extend: 'Ext.data.Model',
    fields: [{
			name: 'id',
			type: 'int'
		},'nombreFase']
});

Ext.onReady(function(){
    Ext.tip.QuickTipManager.init();
    

    var store = Ext.create('Ext.data.Store', {
        model: 'Writer.Person',
        autoLoad: true,
        autoSync: true,
        proxy: {
            type: 'ajax',
            url: 'listarProyectos',
            reader: {
                type: 'json',
                successProperty: 'success',
                root: 'data',
                messageProperty: 'message'
            },
            writer: {
                type: 'json',
                writeAllFields: false,
                root: 'data'
            },

        },
        listeners: {
            write: function(proxy, operation){
                if (operation.action == 'destroy') {
                    main.child('#form').setActiveRecord(null);
                }
                Ext.example.msg(operation.action, operation.resultSet.message);
            }
        },
        
        sorters: [{
            property: 'id',
            direction: 'ASC'
        }]        
    });    
            win = Ext.create('widget.panel', {
				renderTo: 'miembrosProyecto',
				frame: true,
				iconCls: 'icon-alpha',
				title: 'ALPHA MANAGER - PROYECTOS',
                width: 1050,  height: 390,
                layout: 'border',
                y: 30,	x: 160,
                items: [{
                    region: 'west',
					xtype: 'writerform',
					itemId: 'form',
					width: 360,
					listeners: {
						reset: function() {
							win.child('#grid').getSelectionModel().clearSelections();
							
						},
						ddDesarr: function(data){
							
							nombre = extraer(data, '&nombre=', '&nroFases=');		idProyecto = extraer(data, 'id=', '&');
								winDesarrolladores = Ext.create('widget.window', {
									iconCls: 'icon-alpha',
									y: 240,	x: 250,
									title: 'DESARROLLADORES',
									closable: false,
									layout: 'fit',
									items: [PanelDesarrolladores = Ext.create('Ext.Panel', {
												width : 900,	
												height : 310,
												layout  : {type: 'hbox', align: 'stretch'},
												items : [								
													{
														region: 'west',
														xtype: 'DesarrolladoresForm',
														itemId: 'form',
														title: 'Desarrolladores - ' + nombre,
														width: 330,
														listeners: {
															
															reset: function() {
																PanelDesarrolladores.child('#grid').getSelectionModel().clearSelections();
																
															},
															ddFases: function(data){
																var grid1, grid2;
																//nombre = extraer(data, '&nombreRol=', '&descripcion=');
																id = extraer(data, 'id=', '&');		
																winFases = Ext.create('widget.window', {
																	iconCls: 'icon-fase',
																	title: 'Drag & Drop - Asignar Fases  ',
																	closable: false,
																	x: 400, y: 260,
																	plain: true,
																	layout: 'fit',
																	items: [displayPanel = Ext.create('Ext.Panel', {
																				width : 550,	height : 250,
																				layout  : {	type: 'hbox',	align: 'stretch'	},
																				defaults  : { flex : 1 }, 
																				items : [
																						grid1 = Ext.create('Ext.grid.Panel', {
																							multiSelect: true,
																							viewConfig: {
																								plugins: {
																										ptype: 'gridviewdragdrop',
																										dragGroup: 'firstGridDDGroup',
																										dropGroup: 'secondGridDDGroup'
																								},
																							},
																							store: Ext.create('Ext.data.Store', {
																										model: 'DataFases',
																										autoLoad: true,
																										proxy: {
																											type: 'ajax',
																											url: 'listar_no_fases_desarrollador/'+ idProyecto + '/' + id,
																											reader: {
																												type: 'json',
																												successProperty: 'success',
																												root: 'data',
																												messageProperty: 'message'
																											},

																										}      
																									}),
																							columns:  [ 	{text: "Id", hidden:true, dataIndex: 'id'},
																											{text: "<b>Fases No Asignadas</b>", flex: 1, sortable: true, dataIndex: 'nombreFase'} ],
																							stripeRows : true
																						}),
																						grid2 = Ext.create('Ext.grid.Panel', {
																							multiSelect: true,
																							viewConfig: {
																								plugins: {
																										ptype: 'gridviewdragdrop',
																										dragGroup: 'secondGridDDGroup',
																										dropGroup: 'firstGridDDGroup'
																									},
																							},
																							store: Ext.create('Ext.data.Store', {
																									model: 'DataFases',
																									autoLoad: true,
																									proxy: {
																										type: 'ajax',
																										url: 'listar_fases_desarrollador/'+ idProyecto + '/' + id,
																										reader: {
																											type: 'json',
																											successProperty: 'success',
																											root: 'data',
																											messageProperty: 'message'
																										},

																									}       
																							}),
																							columns  : [ 	{text: "Id", hidden:true, dataIndex: 'id'},
																											{text: "<b>Fases Asignadas</b>", flex: 1, sortable: true, dataIndex: 'nombreFase'} ],
																							stripeRows : true
																						})
																				],
																				dockedItems: {
																					xtype: 'toolbar',
																					dock: 'bottom',
																					items: ['->', // Fill
																					{
																						text: 'Guardar',
																						iconCls: 'icon-save',
																						handler: function(){
																							grid2.getSelectionModel().selectAll();
																							longitud= grid2.getSelectionModel().getSelection().length;
																							lista_fases = new Array(longitud);
																							i=0;
																							while(i < longitud)
																							{											
																								lista_fases[i]=grid2.getSelectionModel().getSelection()[i].data['id'];
																								i=i+1;
																							}	
																							grid2.getSelectionModel().deselectAll();											
																							Ext.Ajax.request({
																								url: 'asignar_fase_desarrollador',
																								params: {
																									id_proyecto: idProyecto,
																									id_usuario: id,
																									lista_fases:Ext.encode(lista_fases)
																								},
																								success: function() {
																									Ext.Msg.show({ 		title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
																														msg: 'Fases asignadas correctamente', 	icon: 'ext-mb-ok',
																									});	
																								},
																								failure: function() {
																									Ext.Msg.show({	title: '<br><p align="center"><b>ALPHA MANAGER</b></p>',   
																													msg: 'Error en la asignacion de Fases ', 	icon: 'ext-mb-error',
																									});
																								}
																							})
																						}
																					},
																					{
																						text: 'Cerrar',
																						iconCls: 'icon-cerrar',
																						handler: function(){winFases.close()}
																					}]
																				}
																		}),{
																		border: false
																	}]
																});					
																winFases.show();						
															},
															ddTiposItem: function(data){
																	var grid1, grid2;
																	//nombre = extraer(data, '&nombreRol=', '&descripcion=');		id = extraer(data, 'id=', '&');
																	id = extraer(data, 'id=', '&');	
																	winTipoItem = Ext.create('widget.window', {
																		iconCls: 'icon-tipoItem',
																		title: 'Drag & Drop - Asignar Tipos de Item',
																		closable: false,
																		x: 400, y: 260,
																		plain: true,
																		layout: 'fit',
																		items: [displayPanel = Ext.create('Ext.Panel', {
																					width : 550,	height : 250,
																					layout  : {	type: 'hbox',	align: 'stretch'	},
																					defaults  : { flex : 1 }, 
																					items : [
																							grid1 = Ext.create('Ext.grid.Panel', {
																								multiSelect: true,
																								viewConfig: {
																									plugins: {
																											ptype: 'gridviewdragdrop',
																											dragGroup: 'firstGridDDGroup',
																											dropGroup: 'secondGridDDGroup'
																									},
																								},
																								store: Ext.create('Ext.data.Store', {
																											model: 'DataTipoItem',
																											autoLoad: true,
																											proxy: {
																												type: 'ajax',
																												url: 'listar_no_tipos_desarrollador/'+ idProyecto + '/' + id,
																												reader: {
																													type: 'json',
																													successProperty: 'success',
																													root: 'data',
																													messageProperty: 'message'
																												},

																											}      
																										}),
																								columns:  [ {text: "Id", hidden:true, dataIndex: 'id'},
																											{text: "<b>Tipos de Items No Asignados</b>", flex: 1, sortable: true, dataIndex: 'nombreTipoItem'} ],
																								stripeRows : true
																							}),
																							grid2 = Ext.create('Ext.grid.Panel', {
																								multiSelect: true,
																								viewConfig: {
																									plugins: {
																											ptype: 'gridviewdragdrop',
																											dragGroup: 'secondGridDDGroup',
																											dropGroup: 'firstGridDDGroup'
																										},
																								},
																								store: Ext.create('Ext.data.Store', {
																										model: 'DataTipoItem',
																										autoLoad: true,
																										proxy: {
																											type: 'ajax',
																											url: 'listar_tipos_desarrollador/'+ idProyecto + '/' + id,
																											reader: {
																												type: 'json',
																												successProperty: 'success',
																												root: 'data',
																												messageProperty: 'message'
																											},

																										}       
																								}),
																								columns  : [ {text: "Id", hidden:true, dataIndex: 'id'},
																											{text: "<b>Tipos de Item Asignados</b>", flex: 1, sortable: true, dataIndex: 'nombreTipoItem'} ],
																								stripeRows : true
																							})
																					],
																					dockedItems: {
																						xtype: 'toolbar',
																						dock: 'bottom',
																						items: ['->', // Fill
																						{
																							text: 'Guardar',
																							iconCls: 'icon-save',
																							handler: function(){
																								grid2.getSelectionModel().selectAll();
																								longitud= grid2.getSelectionModel().getSelection().length;
																								lista_tiposItem = new Array(longitud);
																								i=0;
																								while(i < longitud)
																								{											
																									lista_tiposItem[i]=grid2.getSelectionModel().getSelection()[i].data['id'];
																									i=i+1;
																								}	
																								grid2.getSelectionModel().deselectAll();											
																								Ext.Ajax.request({
																									url: 'asignar_tipo_desarrollador',
																									params: {
																										id_proyecto: idProyecto,
																										id_usuario: id,
																										lista_tiposItem:Ext.encode(lista_tiposItem)
																									},
																									success: function() {
																										Ext.Msg.show({ 		title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
																															msg: 'Tipos de Item asignados correctamente', 	icon: 'ext-mb-ok',
																										});	
																									},
																									failure: function() {
																										Ext.Msg.show({	title: '<br><p align="center"><b>ALPHA MANAGER</b></p>',   
																														msg: 'Error en la asignacion de Tipos de Item ', 	icon: 'ext-mb-error',
																										});
																									}
																								})
																							}
																						},
																						{
																							text: 'Cerrar',
																							iconCls: 'icon-cerrar',
																							handler: function(){winTipoItem.close()}
																						}]
																					}
																			}),{
																			border: false
																		}]
																	});					
																	winTipoItem.show();						
																},	
															
														}
													}, {
														region: 'center',
														xtype: 'DesarrolladoresGrid',            
														itemId: 'grid',
														title: 'Lista de Desarrolladores ',
														flex: 1,        
														store: Ext.create('Ext.data.Store', {
																							model: 'ModeloUsuarios',
																							autoLoad: true,
																							//autoSync: true,
																							proxy: {
																								type: 'ajax',
																								url: 'listarUsuarios_conRolDesarrollador',
																								reader: {
																									type: 'json',
																									successProperty: 'success',
																									root: 'data',
																									messageProperty: 'message'
																								},
																								
																							},        
																							
																							sorters: [{
																								property: 'id',
																								direction: 'ASC'
																							}]        
																						}),
														listeners: {
															selectionchange: function(selModel, selected) {
																PanelDesarrolladores.child('#form').setActiveRecord(selected[0] || null);
															},
															
															salir: function() {
																winDesarrolladores.close();
															}
														}
													}
													]
												})
												
										]
								});
								//PanelFases.child('#Faseform').down('#idProy').setValue(id);
								
								winDesarrolladores.show();
							
						},
						ddLiderF: function(data){
							
								nombre = extraer(data, '&nombre=', '&nroFases=');		idProyecto = extraer(data, 'id=', '&');
								winFases = Ext.create('widget.window', {
									iconCls: 'icon-alpha',
									y: 250,	x: 230,
									title: 'LIDERES DE FASE',
									closable: false,	
									layout: 'fit',
									items: [PanelFases = Ext.create('Ext.Panel', {
												width : 900,	height : 300,
												layout  : {	type: 'hbox',	align: 'stretch'	},
												items : [								
													{
														region: 'west',
														xtype: 'fasesLform',
														title: 'Fases - ' + nombre,
														itemId: 'Faseform',
														width: 350,
														listeners: {
															refresh: function() {
																PanelFases.child('#fasesgrid').onRefresh();		
															},
															ddLider: function(data){
																var grid1, grid2;
																nombre = extraer(data, '&nombreFase=', '&descripcion=');		id = extraer(data, 'id=', '&');
																win2 = Ext.create('widget.window', {
																	iconCls: 'icon-lider',
																	x: 490, y: 260,
																	title: 'Drag & Drop - Lider de Fase: ' + nombre,
																	closable: false, plain: true,
																	layout: 'fit',
																	items: [displayPanel = Ext.create('Ext.Panel', {
																				width : 260,
																				height : 250,
																				layout  : {	type: 'hbox',	align: 'stretch'	},
																				defaults  : { flex : 1 }, 
																				items : [
																						grid1 = Ext.create('Ext.grid.Panel', {
																							multiSelect: true,
																							hidden:true,
																							viewConfig: {
																								plugins: {
																										ptype: 'gridviewdragdrop',
																										dragGroup: 'firstGridDDGroup',
																										dropGroup: 'secondGridDDGroup'
																								},
																							},
																							store: Ext.create('Ext.data.Store', {
																										model: 'DataUsuario',
																										autoLoad: true,
																										proxy: {
																											type: 'ajax',
																											url: 'listarUsuarios_conRolLiderFase/'+ id,
																											reader: {
																												type: 'json',
																												successProperty: 'success',
																												root: 'data',
																												messageProperty: 'message'
																											},

																										}      
																									}),
																							columns:  [ {text: "<b>Lideres de Fase</b>", flex: 1, sortable: true, dataIndex: 'nombreUsuario'} ],
																							stripeRows : true
																						}),
																						grid2 = Ext.create('Ext.grid.Panel', {
																							multiSelect: true,
																							viewConfig: {
																								plugins: {
																										ptype: 'gridviewdragdrop',
																										dragGroup: 'secondGridDDGroup',
																										dropGroup: 'firstGridDDGroup'
																									},
																							},
																							store: Ext.create('Ext.data.Store', {
																									model: 'DataUsuario',
																									autoLoad: true,
																									proxy: {
																										type: 'ajax',
																										url: 'mostrarLiderFase_actual/'+ id,
																										reader: {
																											type: 'json',
																											successProperty: 'success',
																											root: 'data',
																											messageProperty: 'message'
																										},

																									}       
																							}),
																							columns  : [ {text: "<b>Lider Asignado</b>", flex: 1, sortable: true, dataIndex: 'nombreUsuario'} ],
																							stripeRows : true
																						})
																				],
																				dockedItems: {
																					xtype: 'toolbar',
																					dock: 'bottom',
																					items: ['->', // Fill
																					{
																						text: 'Asignar',
																						iconCls: 'icon-izq',
																						handler: function(){
																							this.up('panel').setWidth(520);
																							grid1.show();
																							this.hide();
																							displayPanel.down('#save').show();
																						}
																					},{
																						text: 'Guardar',
																						iconCls: 'icon-save',
																						itemId: 'save',
																						hidden:true,
																						handler: function(){
																							grid2.getSelectionModel().selectAll();
																							longitud= grid2.getSelectionModel().getSelection().length;
																							if (longitud > 1){
																								Ext.Msg.show({ 		title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
																														msg: 'Solo se puede asignar un Lider de Fase', 	icon: 'ext-mb-error',
																									});
																								grid2.getSelectionModel().deselectAll();
																							}
																							else{
																								lista_usuarios = new Array(longitud);
																								i=0;
																								while(i < longitud)
																								{											
																										lista_usuarios[i]=grid2.getSelectionModel().getSelection()[i].data['nombreUsuario'];
																										i=i+1;
																								}	
																								grid2.getSelectionModel().deselectAll();											
																								Ext.Ajax.request({
																									url: 'asignar_lider_fase',
																									params: {
																										id_fase: id,
																										lista_usuarios:Ext.encode(lista_usuarios)
																									},
																									success: function(response) {
																										var jsonData = Ext.JSON.decode(response.responseText);
																										var resultMessage = jsonData['mensaje'];
																										Ext.Msg.show({ 		title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
																															msg: resultMessage, 	icon: 'ext-mb-ok',
																										});	
																									},
																									failure: function() {
																										Ext.Msg.show({	title: '<br><p align="center"><b>ALPHA MANAGER</b></p>',   
																														msg: 'Error en la asignacion del lider de Fase', 	icon: 'ext-mb-error',
																										});
																									}
																								})
																							}
																						}
																					},
																					{
																						text: 'Cerrar',
																						iconCls: 'icon-cerrar',
																						handler: function(){win2.close()}
																					}]
																				}
																		}),{
																		border: false
																	}]
																});					
																win2.show();						
															}																
														}
														//height: 150,
													}, {
														region: 'center',
														xtype: 'fasesLgrid',            
														itemId: 'fasesgrid',
														title: 'Lista de Fases',
														flex: 1,        
														//width: 480,
														//height: 250,
														store: Ext.create('Ext.data.Store', {
																model: 'Writer.Fases',
																autoLoad: true,
																autoSync: true,
																proxy: {
																	type: 'ajax',
																	url: 'listar_fases_por_proyecto/'+ idProyecto,
																	reader: {
																		type: 'json',
																		successProperty: 'success',
																		root: 'data',
																		messageProperty: 'message'
																	},
																	writer: {
																		type: 'json',
																		writeAllFields: false,
																		root: 'data'
																	},

																},
																
																sorters: [{
																	property: 'id',
																	direction: 'ASC'
																}]        
															}),
														listeners: {
															selectionchange: function(selModel, selected) {
																PanelFases.child('#Faseform').setActiveRecord(selected[0] || null);
															},
															salir: function() {
																winFases.close();
																//win.child('#grid').onRefresh();
															}
														}
													}]
												})
												
										]
								});	
								PanelFases.child('#Faseform').down('#idProy').setValue(id);
								/*displayPanel.child('#Faseform').down('#tipo').store = Ext.create('Ext.data.Store', {
																							model: 'DataTipoItem',
																							autoLoad: false,
																							proxy: {
																								type: 'ajax',
																								url: 'listar_tipo_items_por_fase/'+'1',
																								reader: {
																									type: 'json',
																									successProperty: 'success',
																									root: 'data',
																									messageProperty: 'message'
																								}
																							}        
																							
																						});*/
								winFases.show();
							
						},

						ddMiembros: function(data){
							
								nombre = extraer(data, '&nombre=', '&nroFases=');		idProyecto = extraer(data, 'id=', '&');
								winMiembros = Ext.create('widget.window', {
									iconCls: 'icon-alpha',
									y: 240,	x: 380,
									title: 'MIEMBROS - '+ nombre,
									closable: false,
									layout: 'fit',
									items: [PanelMiembros = Ext.create('Ext.Panel', {
												width : 650,	height : 310,
												layout  : {type: 'hbox', align: 'stretch'},
												items : [								
													{
														region: 'west',
														xtype: 'MiembrosForm',
														itemId: 'form',
														title: 'Miembros - ' ,
														width: 330,
														listeners: {
															
															reset: function() {
																PanelMiembros.child('#grid').getSelectionModel().clearSelections();
																
															},
															
														}
													}, {
														region: 'center',
														xtype: 'MiembrosGrid',            
														itemId: 'grid',
														title: 'Lista de Miembros ',
														flex: 1,        
														store: Ext.create('Ext.data.Store', {
																							model: 'ModeloUsuarios',
																							autoLoad: true,
																							//autoSync: true,
																							proxy: {
																								type: 'ajax',
																								url: 'listar_miembros/' + idProyecto,
																								reader: {
																									type: 'json',
																									successProperty: 'success',
																									root: 'data',
																									messageProperty: 'message'
																								},
																								
																							},        
																							
																							sorters: [{
																								property: 'id',
																								direction: 'ASC'
																							}]        
																						}),
														listeners: {
															selectionchange: function(selModel, selected) {
																PanelMiembros.child('#form').setActiveRecord(selected[0] || null);
															},
															
															salir: function() {
																winMiembros.close();
															}
														}
													}
													]
												})
												
										]
								});
								PanelMiembros.child('#form').hide();	
								//PanelFases.child('#Faseform').down('#idProy').setValue(id);
								
								winMiembros.show();
										
				
						}
					}
				}, {
                    region: 'center',
					xtype: 'writergrid',            
					itemId: 'grid',
					title: 'Lista de Proyectos',
					flex: 1,        
					store: Ext.create('Ext.data.Store', {
														model: 'Writer.Person',
														autoLoad: true,
														proxy: {
															type: 'ajax',
															url: 'listarProyectos',
															reader: {
																type: 'json',
																successProperty: 'success',
																root: 'data',
																messageProperty: 'message'
															},
															
														},        
														
														sorters: [{
															property: 'id',
															direction: 'ASC'
														}]        
													}),
					listeners: {
						selectionchange: function(selModel, selected) {
							win.child('#form').setActiveRecord(selected[0] || null);
						}
					}
				}]
            });
            win.show();
    

    
});

function extraer(texto, etqini, etqfin){
		var ind0, ind1, parte ="";
		ind0 = texto.indexOf(etqini);
		if (ind0 >=0){
			ind1 = texto.indexOf(etqfin);
			if (ind1>ind0)
				parte = texto.substring(ind0+etqini.length, ind1);
		}
		return parte;
}
